d80db05febc37e9a47a7112229358b80130c857d,hazelcast/src/test/java/com/hazelcast/map/impl/nearcache/invalidation/InvalidationMemberAddRemoveTest.java,InvalidationMemberAddRemoveTest,ensure_nearCached_and_actual_data_sync_eventually,#,77

Before Change


        putFromMember.start();
        populateClientNearCache.start();
        clearFromMember.start();
        shadowMember.start();

        // stress system some seconds
        sleepSeconds(60);

        //stop threads
        stopTest.set(true);
        shadowMember.join();
        clearFromMember.join();
        populateClientNearCache.join();
        putFromMember.join();

After Change


        List<Thread> threads = new ArrayList<Thread>();

        // continuously adds and removes member
        Thread shadowMember = new Thread(new Runnable() {
            @Override
            public void run() {
                while (!stopTest.get()) {
                    HazelcastInstance member = factory.newHazelcastInstance(config);
                    sleepSeconds(5);
                    member.getLifecycleService().terminate();
                }

            }
        });
        threads.add(shadowMember);

        // populates client near-cache
        Thread populateClientNearCache = new Thread(new Runnable() {
            public void run() {
                while (!stopTest.get()) {
                    for (int i = 0; i < KEY_COUNT; i++) {
                        nearCachedMap.get(i);
                    }
                }
            }
        });
        threads.add(populateClientNearCache);

        // updates map data from member.
        Thread putFromMember = new Thread(new Runnable() {
            public void run() {
                while (!stopTest.get()) {
                    int key = getInt(KEY_COUNT);
                    int value = getInt(Integer.MAX_VALUE);
                    memberMap.put(key, value);

                    sleepAtLeastMillis(5);
                }
            }
        });
        threads.add(putFromMember);

        Thread clearFromMember = new Thread(new Runnable() {
            public void run() {
                while (!stopTest.get()) {
                    memberMap.clear();
                    sleepSeconds(5);
                }
            }
        });
        threads.add(clearFromMember);

        // start threads
        for (Thread thread : threads) {
            thread.start();
        }
        // stress system some seconds
        sleepSeconds(TEST_RUN_SECONDS);

        //stop threads
        stopTest.set(true);
        for (Thread thread : threads) {
            thread.join();
        }